<?php
namespace addons\cloudstorage\driver;

use think\File;

abstract class Driver
{
    protected $config;
    protected $domain;
    
    public function __construct($config, $domain = '')
    {
        $this->config = $config;
        $this->domain = $domain;
    }
    
    /**
     * 上传文件
     * @param File $file 文件对象
     * @param string $path 存储路径
     * @return array 上传结果
     */
    abstract public function upload(File $file, $path = '');
    
    /**
     * 删除文件
     * @param string $filePath 文件路径
     * @return bool
     */
    abstract public function delete($filePath);
    
    /**
     * 获取文件访问URL
     * @param string $filePath 文件路径
     * @return string
     */
    public function getUrl($filePath)
    {
        if (empty($this->domain)) {
            return $filePath;
        }
        return rtrim($this->domain, '/') . '/' . ltrim($filePath, '/');
    }
}
?>
